SOP-003:雷达扫描与推送¶
概述¶
每日自动扫描苏子桐生活库各维度目录(教育、社交、成长档案等),检测是否有新增/变更文件,生成变化摘要并推送到用户微信。同时执行日志归档和设备状态巡检。
时间¶
- 基线时间: 凌晨 5:00(CST)
- 扫描范围: 上一日 00:00 ~ 23:59(不是"前24小时")
- 日期确定:
YESTERDAY=$(date -d 'yesterday' +%Y-%m-%d) - 文件过滤: 用
-newermt精确按日历日筛选,不用-mtime -1(后者是24小时滚动窗口) - 周期: 每日一次
- 定位: 与 HA 同步(3:00)、记忆维护(3:00)同属凌晨维护批次,5:00 错峰执行
- Cron 表达式:
0 5 * * * - 看门狗: 雷达扫描完成后自动执行
watchdog_digital_twin.py巡检
责任人¶
- 执行方: Hermes Cron(LLM 驱动)
- 触发方式: cron job
小小苏雷达-每日扫描
输入¶
生活/苏子桐/
├── 00-成长档案/ ← AI整理的里程碑记录
├── 01-教育/ ← RAZ、阅读、游泳等外部记录
├── 02-社交与性格/ ← 待填充
├── 03-生日/ ← 待拆分
├── 融合画像/ ← 月度+事件画像(只读引用)
└── _sops/ ← 自身不扫描
执行步骤¶
Step 1:日志归档¶
在 xiaozhi-esp32-server 容器内归档昨日 server log 和 PowerMem 日志。
由 archive_logs.py 执行。
Step 2:维度目录扫描¶
(同原 Step 2,不变)
Step 3:生成变化摘要¶
(同原 Step 3,不变)
Step 4:静默推送¶
有变化才推微信,无变化静默(原 Step 4 优化版)。
Step 5:写标记文件¶
(同原 Step 5)
Step 6:看门狗巡检¶
(同原 Step 6,含稳定层版本比对)
Step 7:日记→稳定层更新¶
读取日记新条目,更新 stable_profile.txt 的「近期活动」话题。
由 radar_update_stable.py 执行。
Step 8:日记→维度目录¶
按内容分类写入 01-教育/ / 02-社交与性格/ / 00-成长档案/。
由 diary_extract.py 执行(含 id/confidence/tags 元数据)。
Step 9:融合画像事件更新¶
追加新事件到融合画像「最近动态」表。
由 update_fusion_events.py 执行。
Step 10:Tag 索引更新¶
扫描维度目录事件文件,重建 融合画像/_tag_index.md。
由 tag_index.py 执行。
Step 11:事件插队检测¶
检测日记中是否含里程碑关键词(第一次/里程碑/首次等),触发即生成事件篇融合画像 → 更新稳定层 → 重启小樱桃。
由 event_insertion.py 执行。
Step 12:热词注入¶
(原 Step -> inject_hotwords_to_profile.py,不变)
输出¶
- 雷达推送消息(微信)
- 日志归档完成确认(local,不推送)
与 SOP-004 融合画像的关系¶
- 雷达仅报告"有变化"和"摘要"
- 融合画像的逐月画像由 SOP-004 独立触发,不在此 SOP 中执行
- 雷达发现有价值的变化时,可作为 SOP-004 事件插队的触发信号(由人工判断)
变更日志¶
| 日期 | 版本 | 变更 |
|---|---|---|
| 2026-07-06 | v1 | 初版,凌晨 5:00 执行 |
| 2026-07-09 | v2 | 新增看门狗检查项:稳定层文件完整性 + 版本过期提醒 |
相关文档¶
| 方向 | 链接 |
|---|---|
| 🔗 上游 | SOP-002 生活库数据抽取联动(数据管道) |
| 🔗 下游 | SOP-004 融合画像更新(事件插队触发信号) |
| 🔧 依赖 | SOP-001 小樱桃语音交互体系(日志归档) |
| 📝 变更 | 版本日志 |